package com.basic.sys.service;

import com.basic.common.result.WebResult;
import com.basic.sys.controller.res.DataMonitorPageResult;
import com.basic.sys.controller.res.PageResultForm;
import com.basic.sys.dao.model.DataMonitor;
import com.basic.sys.domain.DataMonitorBo;
import com.basic.sys.domain.PumpEquipmentBo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;


/***
 * 数据入库相关接口
 */
public interface DataMonitorService {
    /***
     * 修改数据入库监控信息
     * @param dataMonitorBo 修改数据监控实体类
     */
    public WebResult updateDataMonitorById(DataMonitorBo dataMonitorBo);
    /***
     * 通过id删除数据入库监控信息
     * @param id 数据id
     */
    public WebResult deleteDataMonitorById(Long id);
    /**
     * 添加数据入库监控信息
     * @param dataMonitorBo 数据监控实体类
     */
    public WebResult addDataMonitor(DataMonitorBo dataMonitorBo);

    /***
     * 通过条件进行查询
     * dataMonitorPageQueryDto 分页条件
     * @return 条件查询的数据
     */
    public WebResult<DataMonitorPageResult> selectAllPage(DataMonitorBo dataMonitorBo);

    /***
     * 不分页查询
     * @param dataMonitorBo 查询条件信息
     * @return
     */
    public DataMonitorPageResult selectAll(DataMonitorBo dataMonitorBo);

    /***
     * 计算countVal的总数
     * @param dataMonitorBo 参数条件
     * @return
     */
    public Long countValSum(DataMonitorBo dataMonitorBo);

    /***
     * 数据概览导出
     * @param dataMonitorBo 查询条件
     * @param request 请求http
     * @param response 响应http
     */
    public void DataExportSJGL(DataMonitorBo dataMonitorBo,HttpServletRequest request, HttpServletResponse response);

    /***
     * 人员统计导出
     * @param dataMonitorBo 查询条件
     * @param request 请求http
     * @param response 响应http
     */
    public void DataExportRYTJ(DataMonitorBo dataMonitorBo,HttpServletRequest request,HttpServletResponse response);


    /***
     * 导入文件分页查询(预览)
     * @param file 文件
     * @return
     */
    public WebResult SelectEquipmentImportPage(MultipartFile file,PumpEquipmentBo pumpEquipmentBo);


    /***
     * 查询当天导入录入的个数
     * @return
     */
    public WebResult ConsoleDataMonitorView();

    /***
     * 获取文件导入信息
     * @return
     */
    public  WebResult getFileImportInfo(DataMonitorBo dataMonitorBo);

    /***
     * 查询导入数据之后的数据信息
     * @param pumpEquipmentBo 设备信息
     * @return
     */
    WebResult selEquipmentAll(PumpEquipmentBo pumpEquipmentBo);
}
